The present invention relates to computer programming and communications networks, and deals more particularly with reducing packet fragmentation in a networking environment (including, by way of example, a packet tunneling environment or a network overlay environment).
When application data is prepared for transmission through a communications network, various headers are added to the application data that is to be sent in an outbound message. The application data is commonly referred to as the payload. Typically, a particular layer of a network protocol stack adds its own layer-specific message header(s) to the payload, and the resulting data block is then encapsulated by the next lower layer of the protocol stack, which in turn adds its own layer-specific message header(s). This process of encapsulation and adding message headers may be repeated multiple times before a particular payload is transmitted.
A link layer in the protocol stack typically has a maximum transmission unit, or “MTU”, size that represents the largest packet size (in bytes) that can be passed from this layer to the network. The MTU size includes both the payload and the headers which are present. A larger MTU size therefore allows more payload to be contained in each outbound packet, whereas a smaller MTU size may lead to an undesirable ratio of headers to payload. On the other hand, the larger packets take longer to transmit and may be more likely to be dropped during transmission, thus necessitating retransmission.